Advances in computing technologies have led to a proliferation of computing devices in modern society. Myriad computing devices having various shapes, sizes, and capabilities have been made available to consumers. For example, consumers may choose from computing devices such as mobile phones, smart phones, tablet computers, e-reader devices, personal computers, media players, gaming devices, set-top-box (“STB”) devices, digital video recorder (“DVR”) devices, Global Positioning System (“GPS”) devices, and other types of computing devices.
The proliferation of computing devices in modern society has challenged designers and developers of graphical user interfaces for the computing devices. For example, the competitive landscapes between manufacturers of computing devices, between providers of applications that run on computing devices, and between providers of services accessed through the computing devices have pushed designers and developers of graphical user interfaces to design and develop graphical user interfaces as efficiently as possible without sacrificing quality.
Unfortunately, traditional processes for design and development of graphical user interfaces have not kept pace with the demands placed on the designers and developers of the graphical user interfaces. To illustrate, in a traditional design and development process, a designer utilizes a graphical user interface design tool to design a screen layout of graphical elements to be included in a graphical user interface. Once the design is complete, the designer provides information about the screen layout of graphical elements to a developer who is responsible for producing computing code configured to be executed by a computing device to render a graphical user interface that includes the screen layout of graphical elements designed by the designer. Unfortunately, this process is typically time consuming, requires significant manual labor by the designer and the developer, and is fraught with opportunities for error. For instance, the developer typically has to use the information provided by the designer to manually produce computing code for the screen layout. The process must be repeated each time a modification is made to the screen layout.
These problems are exacerbated when a screen layout design is to be integrated into graphical user interfaces rendered by computing devices having different computing platforms. In such cases, the developer must manually produce computing code in different languages for the different computing platforms. This is especially time consuming and error prone when the different computing platforms render graphical user interfaces in accordance with different graphics rendering heuristics. For example, different computing platforms may use different reference positions (e.g., top-left corner versus bottom-left corner) for positioning graphical elements in a graphical user interface. As another example, different computing platforms may use different heuristics for rendering or positioning text in a graphical user interface.
For at least these reasons, the design and development of a screen layout for a graphical user interface, or even a simple change to a screen layout of a graphical user interface, is time consuming, labor intensive, and/or prone to error in a conventional design and development process.